﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;

namespace ReclutamientoCosea
{
    public static  class AdmOT
    {
        private static AppSettingsReader settings = new AppSettingsReader();

        public static OrdenTrabajo  BuscaOT(string numero)
        {
            OrdenTrabajo ot = new OrdenTrabajo();
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));

            try
            {
                
                string strSQL = "exec SPBuscaOrdenTrabajo {0}";

                bd.bdConecta();

                strSQL = string.Format(strSQL, numero);

                DataSet ds = bd.dataSetConsulta(strSQL, "OT");

                if (ds.Tables["OT"].Rows.Count > 0)
                {
                    ot.idorden = ds.Tables["OT"].Rows[0]["idorden"].ToString();
                    ot.numero = int.Parse (ds.Tables["OT"].Rows[0]["numero"].ToString());
                    ot.idempresa = ds.Tables["OT"].Rows[0]["idempresa"].ToString();
                    ot.nombrepuesto = ds.Tables["OT"].Rows[0]["nombrepuesto"].ToString();
                    ot.numerovacantes = int.Parse (ds.Tables["OT"].Rows[0]["numerovacantes"].ToString());
                    ot.edad = int.Parse (ds.Tables["OT"].Rows[0]["edad"].ToString());
                    ot.sexo = ds.Tables["OT"].Rows[0]["sexo"].ToString();
                    ot.estado_civil = ds.Tables["OT"].Rows[0]["estado_civil"].ToString();
                    ot.escolaridad = ds.Tables["OT"].Rows[0]["escolaridad"].ToString();
                    ot.titulo = ds.Tables["OT"].Rows[0]["titulo"].ToString();
                    ot.idiomaextranjero = int.Parse(ds.Tables["OT"].Rows[0]["idiomaextranjero"].ToString());
                    ot.automovil = int.Parse(ds.Tables["OT"].Rows[0]["automovil"].ToString());
                    ot.comentidioma = ds.Tables["OT"].Rows[0]["comentidioma"].ToString();
                    ot.comentautomovil = ds.Tables["OT"].Rows[0]["comentautomovil"].ToString();
                    ot.estatura = double.Parse(ds.Tables["OT"].Rows[0]["estatura"].ToString());
                    ot.talla =  int.Parse (ds.Tables["OT"].Rows[0]["talla"].ToString());
                    ot.otro = ds.Tables["OT"].Rows[0]["otro"].ToString();
                    ot.experiencia = int.Parse (ds.Tables["OT"].Rows[0]["experiencia"].ToString());
                    ot.tiempo = int.Parse(ds.Tables["OT"].Rows[0]["tiempo"].ToString());
                    ot.conocimientos = ds.Tables["OT"].Rows[0]["conocimientos"].ToString();
                    ot.habilidades = ds.Tables["OT"].Rows[0]["habilidades"].ToString();
                    ot.actividades = ds.Tables["OT"].Rows[0]["actividades"].ToString();
                    ot.software = ds.Tables["OT"].Rows[0]["software"].ToString();
                    ot.personalasucargo = int.Parse(ds.Tables["OT"].Rows[0]["personalasucargo"].ToString());
                    ot.horariotrabajo = ds.Tables["OT"].Rows[0]["horariotrabajo"].ToString();
                    ot.sueldo = double.Parse (ds.Tables["OT"].Rows[0]["sueldo"].ToString());
                    ot.comisiones = double.Parse(ds.Tables["OT"].Rows[0]["comisiones"].ToString());
                    ot.prestaciones = ds.Tables["OT"].Rows[0]["prestaciones"].ToString();
                    ot.asignaauto = int.Parse(ds.Tables["OT"].Rows[0]["asignaauto"].ToString());
                    ot.gasolina = double.Parse(ds.Tables["OT"].Rows[0]["gasolina"].ToString());
                    ot.vales = double.Parse (ds.Tables["OT"].Rows[0]["vales"].ToString());
                    ot.otros =  double.Parse(ds.Tables["OT"].Rows[0]["otros"].ToString());
                    ot.tipocontrato = ds.Tables["OT"].Rows[0]["tipocontrato"].ToString();
                    ot.notas1 = ds.Tables["OT"].Rows[0]["notas1"].ToString();
                    ot.lugartrabajo = ds.Tables["OT"].Rows[0]["lugartrabajo"].ToString();
                    ot.coloniatrabajo = ds.Tables["OT"].Rows[0]["coloniatrabajo"].ToString();
                    ot.entrecalles = ds.Tables["OT"].Rows[0]["entrecalles"].ToString();
                    ot.comentarios = ds.Tables["OT"].Rows[0]["comentarios"].ToString();
                    ot.tiempogarantia = int.Parse (ds.Tables["OT"].Rows[0]["tiempogarantia"].ToString());
                    ot.condicionescomerciales = ds.Tables["OT"].Rows[0]["condicionescomerciales"].ToString();
                    ot.comentarios2 = ds.Tables["OT"].Rows[0]["comentarios2"].ToString();
                    ot.status = int.Parse(ds.Tables["OT"].Rows[0]["status"].ToString());
                    ot.fecha  = DateTime.Parse(ds.Tables["OT"].Rows[0]["Fecha"].ToString());
                    ot.fechaAlta = DateTime.Parse ( ds.Tables["OT"].Rows[0]["FechaAlta"].ToString());
                    ot.tiempoComentarios  = ds.Tables["OT"].Rows[0]["tiempocomentarios"].ToString();
                    ot.edad2 = int.Parse (ds.Tables["OT"].Rows[0]["edad2"].ToString());
                    ot.complexion = ds.Tables["OT"].Rows[0]["complexion"].ToString();
                    ot.nfolio =  ds.Tables["OT"].Rows[0]["nfolio"].ToString();
                }

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }

            return ot;
        }

        public static OrdenTrabajo BuscaOTID(string id)
        {
            OrdenTrabajo ot = new OrdenTrabajo();
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));

            try
            {

                string strSQL = "exec SPBuscaOrdenTrabajo2 '{0}'";

                bd.bdConecta();

                strSQL = string.Format(strSQL, id);

                DataSet ds = bd.dataSetConsulta(strSQL, "OT");

                if (ds.Tables["OT"].Rows.Count > 0)
                {
                    ot.idorden = ds.Tables["OT"].Rows[0]["idorden"].ToString();
                    ot.numero = int.Parse(ds.Tables["OT"].Rows[0]["numero"].ToString());
                    ot.idempresa = ds.Tables["OT"].Rows[0]["idempresa"].ToString();
                    ot.nombrepuesto = ds.Tables["OT"].Rows[0]["nombrepuesto"].ToString();
                    ot.numerovacantes = int.Parse(ds.Tables["OT"].Rows[0]["numerovacantes"].ToString());
                    ot.edad = int.Parse(ds.Tables["OT"].Rows[0]["edad"].ToString());
                    ot.sexo = ds.Tables["OT"].Rows[0]["sexo"].ToString();
                    ot.estado_civil = ds.Tables["OT"].Rows[0]["estado_civil"].ToString();
                    ot.escolaridad = ds.Tables["OT"].Rows[0]["escolaridad"].ToString();
                    ot.titulo = ds.Tables["OT"].Rows[0]["titulo"].ToString();
                    ot.idiomaextranjero = int.Parse(ds.Tables["OT"].Rows[0]["idiomaextranjero"].ToString());
                    ot.automovil = int.Parse(ds.Tables["OT"].Rows[0]["automovil"].ToString());
                    ot.comentidioma = ds.Tables["OT"].Rows[0]["comentidioma"].ToString();
                    ot.comentautomovil = ds.Tables["OT"].Rows[0]["comentautomovil"].ToString();
                    ot.estatura = double.Parse(ds.Tables["OT"].Rows[0]["estatura"].ToString());
                    ot.talla = int.Parse(ds.Tables["OT"].Rows[0]["talla"].ToString());
                    ot.otro = ds.Tables["OT"].Rows[0]["otro"].ToString();
                    ot.experiencia = int.Parse(ds.Tables["OT"].Rows[0]["experiencia"].ToString());
                    ot.tiempo = int.Parse(ds.Tables["OT"].Rows[0]["tiempo"].ToString());
                    ot.conocimientos = ds.Tables["OT"].Rows[0]["conocimientos"].ToString();
                    ot.habilidades = ds.Tables["OT"].Rows[0]["habilidades"].ToString();
                    ot.actividades = ds.Tables["OT"].Rows[0]["actividades"].ToString();
                    ot.software = ds.Tables["OT"].Rows[0]["software"].ToString();
                    ot.personalasucargo = int.Parse(ds.Tables["OT"].Rows[0]["personalasucargo"].ToString());
                    ot.horariotrabajo = ds.Tables["OT"].Rows[0]["horariotrabajo"].ToString();
                    ot.sueldo = double.Parse(ds.Tables["OT"].Rows[0]["sueldo"].ToString());
                    ot.comisiones = double.Parse(ds.Tables["OT"].Rows[0]["comisiones"].ToString());
                    ot.prestaciones = ds.Tables["OT"].Rows[0]["prestaciones"].ToString();
                    ot.asignaauto = int.Parse(ds.Tables["OT"].Rows[0]["asignaauto"].ToString());
                    ot.gasolina = double.Parse(ds.Tables["OT"].Rows[0]["gasolina"].ToString());
                    ot.vales = double.Parse(ds.Tables["OT"].Rows[0]["vales"].ToString());
                    ot.otros = double.Parse(ds.Tables["OT"].Rows[0]["otros"].ToString());
                    ot.tipocontrato = ds.Tables["OT"].Rows[0]["tipocontrato"].ToString();
                    ot.notas1 = ds.Tables["OT"].Rows[0]["notas1"].ToString();
                    ot.lugartrabajo = ds.Tables["OT"].Rows[0]["lugartrabajo"].ToString();
                    ot.coloniatrabajo = ds.Tables["OT"].Rows[0]["coloniatrabajo"].ToString();
                    ot.entrecalles = ds.Tables["OT"].Rows[0]["entrecalles"].ToString();
                    ot.comentarios = ds.Tables["OT"].Rows[0]["comentarios"].ToString();
                    ot.tiempogarantia = int.Parse(ds.Tables["OT"].Rows[0]["tiempogarantia"].ToString());
                    ot.condicionescomerciales = ds.Tables["OT"].Rows[0]["condicionescomerciales"].ToString();
                    ot.comentarios2 = ds.Tables["OT"].Rows[0]["comentarios2"].ToString();
                    ot.status = int.Parse(ds.Tables["OT"].Rows[0]["status"].ToString());
                    ot.fecha = DateTime.Parse(ds.Tables["OT"].Rows[0]["Fecha"].ToString());
                    ot.fechaAlta = DateTime.Parse(ds.Tables["OT"].Rows[0]["FechaAlta"].ToString());
                    ot.tiempoComentarios = ds.Tables["OT"].Rows[0]["tiempocomentarios"].ToString();
                    ot.edad2 = int.Parse(ds.Tables["OT"].Rows[0]["edad2"].ToString());
                    ot.complexion = ds.Tables["OT"].Rows[0]["complexion"].ToString();
                    ot.nfolio = ds.Tables["OT"].Rows[0]["nfolio"].ToString();
                }

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }

            return ot;
        }

        public static int GuardaOT(OrdenTrabajo ot)
        {
            int numeroOT = 0;
            bdSQLServer bd = new bdSQLServer((string)settings.GetValue("cadenaconexion", typeof(string)));
            string idorden = System.Guid.NewGuid().ToString();
            

            string strSQL =" exec InsertaOT2 '{0}','{1}',{2},{3},'{4}','{5}','{6}', ";
            strSQL += " '{7}',{8},{9},'{10}','{11}',{12},{13}, ";
            strSQL += " '{14}',{15},{16},'{17}', ";
            strSQL += " '{18}', ";
            strSQL += " '{19}', ";
            strSQL += " '{20}',{21}, ";
            strSQL += " '{22}',{23},{24},'{25}',{26},{27},{28},{29},'{30}', ";
            strSQL += " '{31}','{32}', ";
            strSQL += " '{33}','{34}','{35}', ";
            strSQL += " {36},'{37}', ";
            strSQL += " '{38}', ";
            strSQL += " '{39}',{40}, ";
            strSQL += " '{41}','{42}',{43},'{44}','{45}' ";
       
           
            try
            {
                bd.bdConecta();


                strSQL = string.Format(strSQL, ot.idempresa, ot.nombrepuesto, ot.numerovacantes, ot.edad, ot.sexo,
                ot.estado_civil, ot.escolaridad, ot.titulo, ot.idiomaextranjero, ot.automovil,
                ot.comentidioma, ot.comentautomovil, ot.estatura, ot.talla, ot.otro, ot.experiencia,
                ot.tiempo, ot.conocimientos, ot.habilidades, ot.actividades, ot.software, ot.personalasucargo,
                ot.horariotrabajo, ot.sueldo, ot.comisiones, ot.prestaciones, ot.asignaauto, ot.gasolina,
                ot.vales, ot.otros, ot.tipocontrato, ot.notas1, ot.lugartrabajo, ot.coloniatrabajo, ot.entrecalles,
                ot.comentarios, ot.tiempogarantia, ot.condicionescomerciales, ot.comentarios2,
                ot.tiempoComentarios, ot.edad2, ot.complexion,LogInLogOut.Usuario.idusuario,ot.sucursal,ot.prefijo,idorden);

                //throw new Exception(strSQL);

                DataSet ds =  bd.dataSetConsulta(strSQL, "insertaot");

                numeroOT = int.Parse (ds.Tables[0].Rows[0][0].ToString ());

                ds = null;


            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                bd.bdCierra();
            }

            return numeroOT;
        }

        public static void ActualizaOT(OrdenTrabajo ot)
        {
            try
            {
                SqlConnection cnn = new SqlConnection((string)settings.GetValue("cadenaconexion", typeof(string)));
                cnn.Open();
                SqlCommand cmd = new SqlCommand();
                cmd = new SqlCommand("SPUpdOrdenTrabajo", cnn);

                cmd.CommandType = CommandType.StoredProcedure;
                SqlParameter sqlidorden = new SqlParameter("@idorden", ot.idorden);
                SqlParameter sqlidempresa = new SqlParameter("@idempresa", ot.idempresa);
                SqlParameter sqlnombrepuesto = new SqlParameter("@nombrepuesto", ot.nombrepuesto);
                SqlParameter sqlnumerovacantes = new SqlParameter("@numerovacantes", ot.numerovacantes);
                SqlParameter sqledad = new SqlParameter("@edad", ot.edad);
                SqlParameter sqlsexo = new SqlParameter("@sexo", ot.sexo);
                SqlParameter sqlestado_civil = new SqlParameter("@estado_civil", ot.estado_civil);
                SqlParameter sqlsqlescolaridad = new SqlParameter("@escolaridad", ot.escolaridad);
                SqlParameter sqltitulo = new SqlParameter("@titulo", ot.titulo);
                SqlParameter sqlidiomaextranjero = new SqlParameter("@idiomaextranjero", ot.idiomaextranjero);
                SqlParameter sqlautomovil = new SqlParameter("@automovil", ot.automovil);
                SqlParameter sqlcomentidioma = new SqlParameter("@comentidioma", ot.comentidioma);
                SqlParameter sqlcomentautomovil = new SqlParameter("@comentautomovil", ot.comentautomovil);
                SqlParameter sqlestatura = new SqlParameter("@estatura", ot.estatura);
                SqlParameter sqltalla = new SqlParameter("@talla", ot.talla);
                SqlParameter sqlotro = new SqlParameter("@otro", ot.otro);
                SqlParameter sqlexperiencia = new SqlParameter("@experiencia", ot.experiencia);
                SqlParameter sqltiempo = new SqlParameter("@tiempo", ot.tiempo);
                SqlParameter sqlconocimientos = new SqlParameter("@conocimientos", ot.conocimientos);
                SqlParameter sqlhabilidades = new SqlParameter("@habilidades", ot.habilidades);
                SqlParameter sqlactividades = new SqlParameter("@actividades", ot.actividades);
                SqlParameter sqlsoftware = new SqlParameter("@software", ot.software);
                SqlParameter sqlpersonalasucargo = new SqlParameter("@personalasucargo", ot.personalasucargo);
                SqlParameter sqlhorariotrabajo = new SqlParameter("@horariotrabajo", ot.horariotrabajo);
                SqlParameter sqlsueldo = new SqlParameter("@sueldo", ot.sueldo);
                SqlParameter sqlcomisiones = new SqlParameter("@comisiones", ot.comisiones);
                SqlParameter sqlprestaciones = new SqlParameter("@prestaciones", ot.prestaciones);
                SqlParameter sqlasignaauto = new SqlParameter("@asignaauto", ot.asignaauto);
                SqlParameter sqlgasolina = new SqlParameter("@gasolina", ot.gasolina);
                SqlParameter sqlvales = new SqlParameter("@vales", ot.vales);
                SqlParameter sqlotros = new SqlParameter("@otros", ot.otros);
                SqlParameter sqltipocontrato = new SqlParameter("@tipocontrato", ot.tipocontrato);
                SqlParameter sqlnotas1 = new SqlParameter("@notas1", ot.notas1);
                SqlParameter sqllugartrabajo = new SqlParameter("@lugartrabajo", ot.lugartrabajo);
                SqlParameter sqlcoloniatrabajo = new SqlParameter("@coloniatrabajo", ot.coloniatrabajo);
                SqlParameter sqlentrecalles = new SqlParameter("@entrecalles", ot.entrecalles);
                SqlParameter sqlcomentarios = new SqlParameter("@comentarios", ot.comentarios);
                SqlParameter sqltiempogarantia = new SqlParameter("@tiempogarantia", ot.tiempogarantia);
                SqlParameter sqlcondicionescomerciales = new SqlParameter("@condicionescomerciales", ot.condicionescomerciales);
                SqlParameter sqlcomentarios2 = new SqlParameter("@comentarios2", ot.comentarios2);
                SqlParameter sqlstatus = new SqlParameter("@status", ot.status);
                SqlParameter sqltiempocomentarios = new SqlParameter("@tiempocomentarios", ot.tiempoComentarios);
                SqlParameter sqledad2 = new SqlParameter("@edad2", ot.edad2);
                SqlParameter sqlcomplexion = new SqlParameter("@complexion", ot.complexion);
                SqlParameter sqlidusuario = new SqlParameter("@idusuario", LogInLogOut.Usuario.idusuario);

                cmd.Parameters.Add(sqlidorden);
                cmd.Parameters.Add(sqlidempresa);
                cmd.Parameters.Add(sqlnombrepuesto);
                cmd.Parameters.Add(sqlnumerovacantes);
                cmd.Parameters.Add(sqledad);
                cmd.Parameters.Add(sqlsexo);
                cmd.Parameters.Add(sqlestado_civil);
                cmd.Parameters.Add(sqlsqlescolaridad);
                cmd.Parameters.Add(sqltitulo);
                cmd.Parameters.Add(sqlidiomaextranjero);
                cmd.Parameters.Add(sqlautomovil);
                cmd.Parameters.Add(sqlcomentidioma);
                cmd.Parameters.Add(sqlcomentautomovil);
                cmd.Parameters.Add(sqlestatura);
                cmd.Parameters.Add(sqltalla);
                cmd.Parameters.Add(sqlotro);
                cmd.Parameters.Add(sqlexperiencia);
                cmd.Parameters.Add(sqltiempo);
                cmd.Parameters.Add(sqlconocimientos);
                cmd.Parameters.Add(sqlhabilidades);
                cmd.Parameters.Add(sqlactividades);
                cmd.Parameters.Add(sqlsoftware);
                cmd.Parameters.Add(sqlpersonalasucargo);
                cmd.Parameters.Add(sqlhorariotrabajo);
                cmd.Parameters.Add(sqlsueldo);
                cmd.Parameters.Add(sqlcomisiones);
                cmd.Parameters.Add(sqlprestaciones);
                cmd.Parameters.Add(sqlasignaauto);
                cmd.Parameters.Add(sqlgasolina);
                cmd.Parameters.Add(sqlvales);
                cmd.Parameters.Add(sqlotros);
                cmd.Parameters.Add(sqltipocontrato);
                cmd.Parameters.Add(sqlnotas1);
                cmd.Parameters.Add(sqllugartrabajo);
                cmd.Parameters.Add(sqlcoloniatrabajo);
                cmd.Parameters.Add(sqlentrecalles);
                cmd.Parameters.Add(sqlcomentarios);
                cmd.Parameters.Add(sqltiempogarantia);
                cmd.Parameters.Add(sqlcondicionescomerciales);
                cmd.Parameters.Add(sqlcomentarios2);
                cmd.Parameters.Add(sqlstatus);
                cmd.Parameters.Add(sqltiempocomentarios);
                cmd.Parameters.Add(sqledad2);
                cmd.Parameters.Add(sqlcomplexion);
                cmd.Parameters.Add(sqlidusuario);

                cmd.ExecuteNonQuery();
                cmd.Dispose();
                cmd = null;
                cnn.Close();
                cnn = null;

            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }

    }
}
